import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace sApi {
  /** 部门信息 */
  export interface Dept {
    id: number; // 部门id
    name?: string; // 部门名称
    parentId?: number; // 父部门id
    sort?: number; // 显示顺序
    leaderUserId: number; // 负责人
    phone: string; // 联系电话
    email: string; // 邮箱
    status?: number; // 部门状态（0正常 1停用）
  }

  /** 用户信息信息 */
  export interface Users {
    id: number; // 用户ID
    username?: string; // 用户账号
    password?: string; // 密码
    nickname?: string; // 用户昵称
    remark: string; // 备注
    deptId: number; // 部门ID
    postIds: string; // 岗位编号数组
    email: string; // 用户邮箱
    mobile: string; // 手机号码
    sex: number; // 用户性别
    avatar: string; // 头像地址
    status?: number; // 帐号状态（0正常 1停用）
    loginIp: string; // 最后登录IP
    loginDate: string; // 最后登录时间
  }

  /** 无人机管理信息 */
  export interface s {
    id: number; // 编号
    sn?: string; // 序列号
    droneModel: string; // 无人机型号
    droneEnt: string; // 无人机厂商
    description: string; // 描述
    userId?: number; // 所属用户ID
    deptId: number; // 部门ID
    status?: number; // 状态（0正常 1停用）
    dept?: Dept;
    users?: Users;
  }
}

export interface CreateDroneRequest {
  sn: string;
  droneModel?: string;
  droneEnt?: string;
  description?: string;
}

/** 查询无人机管理分页 */
export function getsPage(params: PageParam) {
  return requestClient.get<PageResult<sApi.s>>('/drone/s/page', { params });
}

/** 查询无人机管理详情 */
export function gets(id: number) {
  return requestClient.get<sApi.s>(`/drone/s/get?id=${id}`);
}

/** 新增无人机管理 */
export function creates(data: CreateDroneRequest) {
  return requestClient.post('/drone/s/create', data);
}

/** 修改无人机管理 */
export function updates(data: sApi.s) {
  return requestClient.put('/drone/s/update', data);
}

/** 删除无人机管理 */
export function deletes(id: number) {
  return requestClient.delete(`/drone/s/delete?id=${id}`);
}

/** 批量删除无人机管理 */
export function deletesListByIds(ids: number[]) {
  return requestClient.delete(`/drone/s/delete-list?ids=${ids.join(',')}`);
}

/** 导出无人机管理 */
export function exports(params: any) {
  return requestClient.download('/drone/s/export-excel', params);
}

// ==================== 子表（部门） ====================

/** 获得部门 */
export function getDeptById(id: number) {
  return requestClient.get<sApi.Dept>(`/drone/s/dept/get-by-id?id=${id}`);
}

// ==================== 子表（用户信息） ====================

/** 获得用户信息 */
export function getUsersById(id: number) {
  return requestClient.get<sApi.Users>(`/drone/s/users/get-by-id?id=${id}`);
}
